package com.chinamsp.dydb.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.springframework.core.annotation.AliasFor;
import org.springframework.stereotype.Service;

import com.chinamsp.dydb.dbsource.DynamicDataSourcePolicyType;

/**
 * 功能：非数据库映射属性，字段上注解代表无此字段，类上注解代表无此表
 * 非持久数据
 * @author shifenghu
 */
@Inherited
@Retention(RetentionPolicy.RUNTIME) 
@Target({ElementType.TYPE,ElementType.FIELD})
@Service
public @interface DbModule {
	
	/**
	 * 数据源模块名称，优先使用 name
	 * @return
	 */
	@AliasFor("name")
	String value() default "";
	
	/**
	 * 数据源模块名称
	 * @return
	 */
	@AliasFor("value")
	String name() default "";

	/**
	 * slave 的选举策略，默认随机
	 * @return
	 */
	DynamicDataSourcePolicyType policy() default DynamicDataSourcePolicyType.RANDOM;
}
